#ifndef UICONFIRMDIALOG_H
#define UICONFIRMDIALOG_H

#include <QDialog>
#include <QLabel>
#include <QLineEdit>

/**
 * @class UiConfirmDialog
 * 
 * 一个用于展示确认对话框的UI类，继承自QDialog。
 */
class UiConfirmDialog : public QDialog
{
    Q_OBJECT
    
public:
    /**
     * @brief 构造函数，创建一个确认对话框。
     * @param parent 父QWidget，默认为nullptr。
     */
    UiConfirmDialog(QWidget* parent = nullptr);

    /**
     * @brief 添加一个QWidget到对话框中。
     * @param widget 要添加的QWidget指针。
     * @return 成功返回true，失败返回false。
     */
    bool addWidget(QWidget* widget);

    /**
     * @brief 添加一个QLayout到对话框中。
     * @param layout 要添加的QLayout指针。
     * @return 成功返回true，失败返回false。
     */
    bool addLayout(QLayout* layout);

protected:
    /**
     * @brief 处理对话框关闭事件的函数。
     * @param event 关闭事件的QCloseEvent指针。
     */
    void closeEvent(QCloseEvent *event);

signals:
    /**
     * @brief 当用户取消操作时发出的信号。
     */
    void sigCancel();

    /**
     * @brief 当用户确认操作时发出的信号。
     */
    void sigConfirm();

private:
    class QVBoxLayout* m_mainLayout = nullptr; /**< 对话框的主要布局。 */
    class QPushButton* m_cancelBtn = nullptr; /**< 取消按钮。 */
    class QPushButton* m_confirmBtn = nullptr; /**< 确认按钮。 */
    class QHBoxLayout* m_btnLayout = nullptr; /**< 按钮的布局。 */
};

#endif // UICONFIRMDIALOG_H
